/*
 *这是一个表单验证的模块
 *作者：梁晨
 *时间：12.15
 */

// 用户名的规则
const userExg = /^[a-zA-Z0-9_-]{4,8}$/
export var checkuser = (rule, value, callback) => {
  if (!value) {
    return callback(new Error('用户不能为空'))
  } else if (!userExg.test(value)) {
    return callback(new Error('4到8位（字母，数字，下划线，减号）'))
  } else {
    callback()
  }
}

// 密码的规则
const passExg = /(?=.*([a-zA-Z].*))(?=.*[0-9].*)[a-zA-Z0-9-*/+.~!@#$%^&*()]{6,10}$/
export var validatePass = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请输入密码'))
  } else if (!passExg.test(value)) {
    callback(new Error('不好意思，该秘密不符合规则'))
  } else {
    callback()
  }
}
// 新密码
export function checkPass1(o) {
  return function fn(rule, value, callback) {
    if (value === '') {
      callback(new Error('请输入密码'))
    } else if (!passExg.test(value)) {
      callback(new Error('不好意思，该秘密不符合规则'))
    } else {
      if (o.ruleForm.checkPass !== '') {
        o.$refs.ruleForm.validateField('checkPass')
        callback()
      }
    }
  }
}

// 再次输入密码的规则
export function checkPass2(o, str) {
  return (rule, value, callback) => {
    if (value === '') {
      callback(new Error('请再次输入密码'))
    } else if (value !== o.ruleForm[str]) {
      callback(new Error('两次输入密码不一致!'))
    } else {
      callback()
    }
  }
}
